package com.jzo2o.foundations.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jzo2o.foundations.model.domain.Serve;
import com.jzo2o.foundations.model.dto.response.ServeAggregationSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeCategoryResDTO;
import com.jzo2o.foundations.model.dto.response.ServeResDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author itcast
 * @since 2023-07-03
 */
public interface ServeMapper extends BaseMapper<Serve> {
    /**
     * 根据区域id查询区域服务列表
     * @param regionId
     * @return
     */
    List<ServeResDTO> queryListByRegionId(Long regionId);

    /**
     * 存在关联的区域服务且状态为上架表示有区域在使用该服务项
     * @param id
     * @return
     */
    Serve queryServeByServeItemId(Long id);

    /**
     * 据区域id查询已开通的服务类型
     * @param regionId
     * @return
     */
    List<ServeCategoryResDTO> findServeIconCategoryByRegionId(Long regionId);

    /**
     * 根据城市编码查询服务类型列表
     * @param regionId
     * @return
     */
    List<ServeAggregationTypeSimpleResDTO> findServeTypeByRegionId(@Param("regionId") Long regionId);

    /**
     * 查询热门列表
     * @param regionId
     * @return
     */
    List<ServeAggregationSimpleResDTO> queryServeItemByRegionIdCache(Long regionId);

    /**
     * 根据id查询项目
     * @param id
     * @return
     */
    ServeAggregationSimpleResDTO serveDetail(@Param("id") Long id);
}
